Generate Text Result
constructor(output: TOutput, text: String, toolCalls: List<ContentPart.ToolCall>, finishReason: FinishReason, usage: Usage, content: List<ContentPart> = buildList {
if (text.isNotEmpty()) add(ContentPart.Text(text))
addAll(toolCalls)
}, toolResults: List<ContentPart.ToolResult> = content.filterIsInstance<ContentPart.ToolResult>(), reasoning: List<ContentPart.Reasoning> = content.filterIsInstance<ContentPart.Reasoning>(), reasoningText: String? = reasoning.takeIf { it.isNotEmpty() }?.joinToString("") { it.text }, files: List<ContentPart.File> = content.filterIsInstance<ContentPart.File>(), sources: List<ContentPart.Source> = content.filterIsInstance<ContentPart.Source>(), totalUsage: Usage = usage, warnings: List<CallWarning> = emptyList(), request: LanguageModelRequestMetadata = LanguageModelRequestMetadata(), response: LanguageModelResponseMetadata = LanguageModelResponseMetadata(), providerMetadata: Map<String, JsonElement> = emptyMap(), steps: List<StepResult> = emptyList(), rawFinishReason: String? = null)